home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 April: Mac OS SDK / Dev.CD Apr 98 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Universal / Interfaces / PInterfaces / Power.p < prev    next >
Encoding:
Text File  |  1998-02-12  |  19.3 KB  |  547 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        Power.p
  3.  
  4.      Contains:    Power Manager Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Release:    Universal Interfaces 3.1
  8.  
  9.      Copyright:    © 1990-1998 by Apple Computer, Inc.  All rights reserved
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. }
  18. {$IFC UNDEFINED UsingIncludes}
  19. {$SETC UsingIncludes := 0}
  20. {$ENDC}
  21.  
  22. {$IFC NOT UsingIncludes}
  23.  UNIT Power;
  24.  INTERFACE
  25. {$ENDC}
  26.  
  27. {$IFC UNDEFINED __POWER__}
  28. {$SETC __POWER__ := 1}
  29.  
  30. {$I+}
  31. {$SETC PowerIncludes := UsingIncludes}
  32. {$SETC UsingIncludes := 1}
  33.  
  34. {$IFC UNDEFINED __MACTYPES__}
  35. {$I MacTypes.p}
  36. {$ENDC}
  37. {$IFC UNDEFINED __MIXEDMODE__}
  38. {$I MixedMode.p}
  39. {$ENDC}
  40.  
  41.  
  42. {$PUSH}
  43. {$ALIGN MAC68K}
  44. {$LibExport+}
  45.  
  46.  
  47. CONST
  48.                                                                 {  Bit positions for ModemByte  }
  49.     modemOnBit                    = 0;
  50.     ringWakeUpBit                = 2;
  51.     modemInstalledBit            = 3;
  52.     ringDetectBit                = 4;
  53.     modemOnHookBit                = 5;
  54.  
  55.                                                                 {  masks for ModemByte  }
  56.     modemOnMask                    = $01;
  57.     ringWakeUpMask                = $04;
  58.     modemInstalledMask            = $08;
  59.     ringDetectMask                = $10;
  60.     modemOnHookMask                = $20;
  61.  
  62.                                                                 {  bit positions for BatteryByte  }
  63.     chargerConnBit                = 0;
  64.     hiChargeBit                    = 1;
  65.     chargeOverFlowBit            = 2;
  66.     batteryDeadBit                = 3;
  67.     batteryLowBit                = 4;
  68.     connChangedBit                = 5;
  69.  
  70.                                                                 {  masks for BatteryByte  }
  71.     chargerConnMask                = $01;
  72.     hiChargeMask                = $02;
  73.     chargeOverFlowMask            = $04;
  74.     batteryDeadMask                = $08;
  75.     batteryLowMask                = $10;
  76.     connChangedMask                = $20;
  77.  
  78.                                                                 {  bit positions for SoundMixerByte  }
  79.     MediaBaySndEnBit            = 0;
  80.     PCISndEnBit                    = 1;
  81.     ZVSndEnBit                    = 2;
  82.     PCCardSndEnBit                = 3;
  83.  
  84.                                                                 {  masks for SoundMixerByte  }
  85.     MediaBaySndEnMask            = $01;
  86.     PCISndEnMask                = $02;
  87.     ZVSndEnMask                    = $04;
  88.     PCCardSndEnMask                = $08;
  89.  
  90.                                                                 {  commands to SleepQRec sleepQProc  }
  91.     sleepRequest                = 1;
  92.     sleepDemand                    = 2;
  93.     sleepWakeUp                    = 3;
  94.     sleepRevoke                    = 4;
  95.     sleepUnlock                    = 4;
  96.     sleepDeny                    = 5;
  97.     sleepNow                    = 6;
  98.     dozeDemand                    = 7;
  99.     dozeWakeUp                    = 8;
  100.     dozeRequest                    = 9;
  101.  
  102.                                                                 {  SleepQRec.sleepQFlags  }
  103.     noCalls                        = 1;
  104.     noRequest                    = 2;
  105.     slpQType                    = 16;
  106.     sleepQType                    = 16;
  107.  
  108. { bits in bitfield returned by PMFeatures }
  109.     hasWakeupTimer                = 0;                            {  1=wakeup timer is supported                                 }
  110.     hasSharedModemPort            = 1;                            {  1=modem port shared by SCC and internal modem             }
  111.     hasProcessorCycling            = 2;                            {  1=processor cycling is supported                             }
  112.     mustProcessorCycle            = 3;                            {  1=processor cycling should not be turned off                 }
  113.     hasReducedSpeed                = 4;                            {  1=processor can be started up at reduced speed             }
  114.     dynamicSpeedChange            = 5;                            {  1=processor speed can be switched dynamically             }
  115.     hasSCSIDiskMode                = 6;                            {  1=SCSI Disk Mode is supported                             }
  116.     canGetBatteryTime            = 7;                            {  1=battery time can be calculated                             }
  117.     canWakeupOnRing                = 8;                            {  1=can wakeup when the modem detects a ring                 }
  118.     hasDimmingSupport            = 9;                            {  1=has dimming support built in (DPMS standby by default)     }
  119.     hasStartupTimer                = 10;                            {  1=startup timer is supported                                 }
  120.     hasChargeNotification        = 11;                            {  1=client can determine of charge connect status change notifications available  }
  121.     hasDimSuspendSupport        = 12;                            {  1=supports dimming LCD and CRT to DPMS suspend state         }
  122.  
  123. { bits in bitfield returned by GetIntModemInfo and set by SetIntModemState }
  124.     hasInternalModem            = 0;                            {  1=internal modem installed                         }
  125.     intModemRingDetect            = 1;                            {  1=internal modem has detected a ring                 }
  126.     intModemOffHook                = 2;                            {  1=internal modem is off hook                         }
  127.     intModemRingWakeEnb            = 3;                            {  1=wakeup on ring is enabled                         }
  128.     extModemSelected            = 4;                            {  1=external modem selected                         }
  129.     modemSetBit                    = 15;                            {  1=set bit, 0=clear bit (SetIntModemState)         }
  130.  
  131. { bits in BatteryInfo.flags                                     }
  132. { ("chargerConnected" doesn't mean the charger is plugged in)    }
  133.     batteryInstalled            = 7;                            {  1=battery is currently connected                     }
  134.     batteryCharging                = 6;                            {  1=battery is being charged                         }
  135.     chargerConnected            = 5;                            {  1=charger is connected to the PowerBook             }
  136.  
  137.     HDPwrQType                    = $4844;                        {  'HD' hard disk spindown queue element type         }
  138.     PMgrStateQType                = $504D;                        {  'PM' Power Manager state queue element type         }
  139.  
  140. { client notification bits in PMgrQueueElement.pmNotifyBits }
  141.     pmSleepTimeoutChanged        = 0;
  142.     pmSleepEnableChanged        = 1;
  143.     pmHardDiskTimeoutChanged    = 2;
  144.     pmHardDiskSpindownChanged    = 3;
  145.     pmDimmingTimeoutChanged        = 4;
  146.     pmDimmingEnableChanged        = 5;
  147.     pmDiskModeAddressChanged    = 6;
  148.     pmProcessorCyclingChanged    = 7;
  149.     pmProcessorSpeedChanged        = 8;
  150.     pmWakeupTimerChanged        = 9;
  151.     pmStartupTimerChanged        = 10;
  152.     pmHardDiskPowerRemovedbyUser = 11;
  153.     pmChargeStatusChanged        = 12;
  154.     pmPowerLevelChanged            = 13;
  155.  
  156. { System Activity Selectors }
  157.     OverallAct                    = 0;                            {  general type of activity                             }
  158.     UsrActivity                    = 1;                            {  user specific type of activity                     }
  159.     NetActivity                    = 2;                            {  network specific activity                         }
  160.     HDActivity                    = 3;                            {  Hard Drive activity                                 }
  161.  
  162. { Storage Media sleep mode defines }
  163.     kMediaModeOn                = 0;                            {  Media active (Drive spinning and at full power)     }
  164.     kMediaModeStandBy            = 1;                            {  Media standby (not implemented)     }
  165.     kMediaModeSuspend            = 2;                            {  Media Idle (not implemented)     }
  166.     kMediaModeOff                = 3;                            {  Media Sleep (Drive not spinning and at min power, max recovery time)     }
  167.  
  168.     kMediaPowerCSCode            = 70;
  169.  
  170.  
  171. { definitions for HDQueueElement.hdFlags    }
  172.     kHDQueuePostBit                = 0;                            {  1 = call this routine on the second pass         }
  173.     kHDQueuePostMask            = $01;
  174.  
  175.  
  176. TYPE
  177.     ActivityInfoPtr = ^ActivityInfo;
  178.     ActivityInfo = RECORD
  179.         ActivityType:            INTEGER;                                {  Type of activity to be fetched.  Same as UpdateSystemActivity Selectors  }
  180.         ActivityTime:            UInt32;                                    {  Time of last activity (in ticks) of specified type.  }
  181.     END;
  182.  
  183. { information returned by GetScaledBatteryInfo }
  184.     BatteryInfoPtr = ^BatteryInfo;
  185.     BatteryInfo = PACKED RECORD
  186.         flags:                    UInt8;                                    {  misc flags (see below)                             }
  187.         warningLevel:            UInt8;                                    {  scaled warning level (0-255)                         }
  188.         reserved:                UInt8;                                    {  reserved for internal use                         }
  189.         batteryLevel:            UInt8;                                    {  scaled battery level (0-255)                         }
  190.     END;
  191.  
  192.     ModemByte                            = SInt8;
  193.     BatteryByte                            = SInt8;
  194.     SoundMixerByte                        = SInt8;
  195.     PMResultCode                        = LONGINT;
  196.     SleepQRecPtr = ^SleepQRec;
  197.     HDQueueElementPtr = ^HDQueueElement;
  198.     PMgrQueueElementPtr = ^PMgrQueueElement;
  199. {$IFC TYPED_FUNCTION_POINTERS}
  200.     SleepQProcPtr = FUNCTION(message: LONGINT; qRecPtr: SleepQRecPtr): LONGINT;
  201. {$ELSEC}
  202.     SleepQProcPtr = Register68kProcPtr;
  203. {$ENDC}
  204.  
  205. {$IFC TYPED_FUNCTION_POINTERS}
  206.     HDSpindownProcPtr = PROCEDURE(VAR theElement: HDQueueElement);
  207. {$ELSEC}
  208.     HDSpindownProcPtr = ProcPtr;
  209. {$ENDC}
  210.  
  211. {$IFC TYPED_FUNCTION_POINTERS}
  212.     PMgrStateChangeProcPtr = PROCEDURE(VAR theElement: PMgrQueueElement; stateBits: LONGINT);
  213. {$ELSEC}
  214.     PMgrStateChangeProcPtr = ProcPtr;
  215. {$ENDC}
  216.  
  217.     SleepQUPP = UniversalProcPtr;
  218.     HDSpindownUPP = UniversalProcPtr;
  219.     PMgrStateChangeUPP = UniversalProcPtr;
  220.     SleepQRec = RECORD
  221.         sleepQLink:                SleepQRecPtr;                            {  pointer to next queue element                 }
  222.         sleepQType:                INTEGER;                                {  queue element type (must be SleepQType)         }
  223.         sleepQProc:                SleepQUPP;                                {  pointer to sleep universal proc ptr             }
  224.         sleepQFlags:            INTEGER;                                {  flags                                         }
  225.     END;
  226.  
  227.     HDQueueElement = RECORD
  228.         hdQLink:                HDQueueElementPtr;                        {  pointer to next queue element                 }
  229.         hdQType:                INTEGER;                                {  queue element type (must be HDPwrQType)         }
  230.         hdFlags:                INTEGER;                                {  miscellaneous flags                             }
  231.         hdProc:                    HDSpindownUPP;                            {  pointer to routine to call                     }
  232.         hdUser:                    LONGINT;                                {  user-defined (variable storage, etc.)         }
  233.     END;
  234.  
  235.     PMgrQueueElement = RECORD
  236.         pmQLink:                PMgrQueueElementPtr;                    {  pointer to next queue element                 }
  237.         pmQType:                INTEGER;                                {  queue element type (must be PMgrStateQType)     }
  238.         pmFlags:                INTEGER;                                {  miscellaneous flags                             }
  239.         pmNotifyBits:            LONGINT;                                {  bitmap of which changes to be notified for     }
  240.         pmProc:                    PMgrStateChangeUPP;                        {  pointer to routine to call                     }
  241.         pmUser:                    LONGINT;                                {  user-defined (variable storage, etc.)         }
  242.     END;
  243.  
  244.  
  245.     BatteryTimeRecPtr = ^BatteryTimeRec;
  246.     BatteryTimeRec = RECORD
  247.         expectedBatteryTime:    UInt32;                                    {  estimated battery time remaining (seconds)     }
  248.         minimumBatteryTime:        UInt32;                                    {  minimum battery time remaining (seconds)         }
  249.         maximumBatteryTime:        UInt32;                                    {  maximum battery time remaining (seconds)         }
  250.         timeUntilCharged:        UInt32;                                    {  time until battery is fully charged (seconds) }
  251.     END;
  252.  
  253.  
  254.     WakeupTimePtr = ^WakeupTime;
  255.     WakeupTime = RECORD
  256.         wakeTime:                UInt32;                                    {  wakeup time (same format as current time)         }
  257.         wakeEnabled:            BOOLEAN;                                {  1=enable wakeup timer, 0=disable wakeup timer     }
  258.         filler:                    SInt8;
  259.     END;
  260.  
  261.  
  262.     StartupTimePtr = ^StartupTime;
  263.     StartupTime = RECORD
  264.         startTime:                UInt32;                                    {  startup time (same format as current time)         }
  265.         startEnabled:            BOOLEAN;                                {  1=enable startup timer, 0=disable startup timer     }
  266.         filler:                    SInt8;
  267.     END;
  268.  
  269. FUNCTION DisableWUTime: OSErr;
  270. FUNCTION SetWUTime(WUTime: LONGINT): OSErr;
  271. FUNCTION GetWUTime(VAR WUTime: LONGINT; VAR WUFlag: SignedByte): OSErr;
  272. FUNCTION BatteryStatus(VAR Status: SignedByte; VAR Power: SignedByte): OSErr;
  273. FUNCTION ModemStatus(VAR Status: SignedByte): OSErr;
  274. FUNCTION IdleUpdate: LONGINT;
  275.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  276.     INLINE $A285, $2E80;
  277.     {$ENDC}
  278. FUNCTION GetCPUSpeed: LONGINT;
  279.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  280.     INLINE $70FF, $A485, $2E80;
  281.     {$ENDC}
  282. PROCEDURE EnableIdle;
  283.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  284.     INLINE $7000, $A485;
  285.     {$ENDC}
  286. PROCEDURE DisableIdle;
  287.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  288.     INLINE $7001, $A485;
  289.     {$ENDC}
  290. PROCEDURE SleepQInstall(qRecPtr: SleepQRecPtr);
  291.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  292.     INLINE $205F, $A28A;
  293.     {$ENDC}
  294. PROCEDURE SleepQRemove(qRecPtr: SleepQRecPtr);
  295.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  296.     INLINE $205F, $A48A;
  297.     {$ENDC}
  298. PROCEDURE AOn;
  299.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  300.     INLINE $7004, $A685;
  301.     {$ENDC}
  302. PROCEDURE AOnIgnoreModem;
  303.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  304.     INLINE $7005, $A685;
  305.     {$ENDC}
  306. PROCEDURE BOn;
  307.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  308.     INLINE $7000, $A685;
  309.     {$ENDC}
  310. PROCEDURE AOff;
  311.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  312.     INLINE $7084, $A685;
  313.     {$ENDC}
  314. PROCEDURE BOff;
  315.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  316.     INLINE $7080, $A685;
  317.     {$ENDC}
  318.  
  319. { Public Power Management API (NEW!) }
  320.  
  321. FUNCTION PMSelectorCount: INTEGER;
  322.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  323.     INLINE $7000, $A09E, $3E80;
  324.     {$ENDC}
  325. FUNCTION PMFeatures: UInt32;
  326.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  327.     INLINE $7001, $A09E, $2E80;
  328.     {$ENDC}
  329. FUNCTION GetSleepTimeout: ByteParameter;
  330.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  331.     INLINE $7002, $A09E, $1E80;
  332.     {$ENDC}
  333. PROCEDURE SetSleepTimeout(timeout: ByteParameter);
  334.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  335.     INLINE $101F, $4840, $303C, $0003, $A09E;
  336.     {$ENDC}
  337. FUNCTION GetHardDiskTimeout: ByteParameter;
  338.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  339.     INLINE $7004, $A09E, $1E80;
  340.     {$ENDC}
  341. PROCEDURE SetHardDiskTimeout(timeout: ByteParameter);
  342.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  343.     INLINE $101F, $4840, $303C, $0005, $A09E;
  344.     {$ENDC}
  345. FUNCTION HardDiskPowered: BOOLEAN;
  346.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  347.     INLINE $7006, $A09E, $1E80;
  348.     {$ENDC}
  349. PROCEDURE SpinDownHardDisk;
  350.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  351.     INLINE $7007, $A09E;
  352.     {$ENDC}
  353. FUNCTION IsSpindownDisabled: BOOLEAN;
  354.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  355.     INLINE $7008, $A09E, $1E80;
  356.     {$ENDC}
  357. PROCEDURE SetSpindownDisable(setDisable: BOOLEAN);
  358.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  359.     INLINE $101F, $4840, $303C, $0009, $A09E;
  360.     {$ENDC}
  361. FUNCTION HardDiskQInstall(VAR theElement: HDQueueElement): OSErr;
  362.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  363.     INLINE $205F, $700A, $A09E, $3E80;
  364.     {$ENDC}
  365. FUNCTION HardDiskQRemove(VAR theElement: HDQueueElement): OSErr;
  366.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  367.     INLINE $205F, $700B, $A09E, $3E80;
  368.     {$ENDC}
  369. PROCEDURE GetScaledBatteryInfo(whichBattery: INTEGER; VAR theInfo: BatteryInfo);
  370.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  371.     INLINE $205F, $301F, $4840, $303C, $000C, $A09E, $2080;
  372.     {$ENDC}
  373. PROCEDURE AutoSleepControl(enableSleep: BOOLEAN);
  374.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  375.     INLINE $101F, $4840, $303C, $000D, $A09E;
  376.     {$ENDC}
  377. FUNCTION GetIntModemInfo: UInt32;
  378.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  379.     INLINE $700E, $A09E, $2E80;
  380.     {$ENDC}
  381. PROCEDURE SetIntModemState(theState: INTEGER);
  382.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  383.     INLINE $301F, $4840, $303C, $000F, $A09E;
  384.     {$ENDC}
  385. FUNCTION MaximumProcessorSpeed: INTEGER;
  386.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  387.     INLINE $7010, $A09E, $3E80;
  388.     {$ENDC}
  389. FUNCTION CurrentProcessorSpeed: INTEGER;
  390.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  391.     INLINE $7011, $A09E, $3E80;
  392.     {$ENDC}
  393. FUNCTION FullProcessorSpeed: BOOLEAN;
  394.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  395.     INLINE $7012, $A09E, $1E80;
  396.     {$ENDC}
  397. FUNCTION SetProcessorSpeed(fullSpeed: BOOLEAN): BOOLEAN;
  398.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  399.     INLINE $101F, $4840, $303C, $0013, $A09E, $1E80;
  400.     {$ENDC}
  401. FUNCTION GetSCSIDiskModeAddress: INTEGER;
  402.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  403.     INLINE $7014, $A09E, $3E80;
  404.     {$ENDC}
  405. PROCEDURE SetSCSIDiskModeAddress(scsiAddress: INTEGER);
  406.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  407.     INLINE $301F, $4840, $303C, $0015, $A09E;
  408.     {$ENDC}
  409. PROCEDURE GetWakeupTimer(VAR theTime: WakeupTime);
  410.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  411.     INLINE $205F, $7016, $A09E;
  412.     {$ENDC}
  413. PROCEDURE SetWakeupTimer(VAR theTime: WakeupTime);
  414.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  415.     INLINE $205F, $7017, $A09E;
  416.     {$ENDC}
  417. FUNCTION IsProcessorCyclingEnabled: BOOLEAN;
  418.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  419.     INLINE $7018, $A09E, $1E80;
  420.     {$ENDC}
  421. PROCEDURE EnableProcessorCycling(enable: BOOLEAN);
  422.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  423.     INLINE $101F, $4840, $303C, $0019, $A09E;
  424.     {$ENDC}
  425. FUNCTION BatteryCount: INTEGER;
  426.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  427.     INLINE $701A, $A09E, $3E80;
  428.     {$ENDC}
  429. FUNCTION GetBatteryVoltage(whichBattery: INTEGER): Fixed;
  430.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  431.     INLINE $301F, $4840, $303C, $001B, $A09E, $2E80;
  432.     {$ENDC}
  433. PROCEDURE GetBatteryTimes(whichBattery: INTEGER; VAR theTimes: BatteryTimeRec);
  434.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  435.     INLINE $205F, $301F, $4840, $303C, $001C, $A09E;
  436.     {$ENDC}
  437. FUNCTION GetDimmingTimeout: ByteParameter;
  438.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  439.     INLINE $701D, $A09E, $1E80;
  440.     {$ENDC}
  441. PROCEDURE SetDimmingTimeout(timeout: ByteParameter);
  442.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  443.     INLINE $101F, $4840, $303C, $001E, $A09E;
  444.     {$ENDC}
  445. PROCEDURE DimmingControl(enableSleep: BOOLEAN);
  446.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  447.     INLINE $101F, $4840, $303C, $001F, $A09E;
  448.     {$ENDC}
  449. FUNCTION IsDimmingControlDisabled: BOOLEAN;
  450.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  451.     INLINE $7020, $A09E, $1E80;
  452.     {$ENDC}
  453. FUNCTION IsAutoSlpControlDisabled: BOOLEAN;
  454.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  455.     INLINE $7021, $A09E, $1E80;
  456.     {$ENDC}
  457. FUNCTION PMgrStateQInstall(VAR theElement: PMgrQueueElement): OSErr;
  458.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  459.     INLINE $205F, $7022, $A09E, $3E80;
  460.     {$ENDC}
  461. FUNCTION PMgrStateQRemove(VAR theElement: PMgrQueueElement): OSErr;
  462.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  463.     INLINE $205F, $7023, $A09E, $3E80;
  464.     {$ENDC}
  465. FUNCTION UpdateSystemActivity(activity: ByteParameter): OSErr;
  466.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  467.     INLINE $101F, $4840, $303C, $0024, $A09E, $3E80;
  468.     {$ENDC}
  469. FUNCTION DelaySystemIdle: OSErr;
  470.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  471.     INLINE $7025, $A09E, $3E80;
  472.     {$ENDC}
  473. FUNCTION GetStartupTimer(VAR theTime: StartupTime): OSErr;
  474.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  475.     INLINE $205F, $7026, $A09E, $3E80;
  476.     {$ENDC}
  477. FUNCTION SetStartupTimer(VAR theTime: StartupTime): OSErr;
  478.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  479.     INLINE $205F, $7027, $A09E, $3E80;
  480.     {$ENDC}
  481. FUNCTION GetLastActivity(VAR theActivity: ActivityInfo): OSErr;
  482.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  483.     INLINE $205F, $7028, $A09E, $3E80;
  484.     {$ENDC}
  485. FUNCTION GetSoundMixerState(VAR theSoundMixerByte: SoundMixerByte): OSErr;
  486.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  487.     INLINE $205F, $7029, $A09E, $3E80;
  488.     {$ENDC}
  489. FUNCTION SetSoundMixerState(VAR theSoundMixerByte: SoundMixerByte): OSErr;
  490.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  491.     INLINE $205F, $702A, $A09E, $3E80;
  492.     {$ENDC}
  493. FUNCTION GetDimSuspendState: BOOLEAN;
  494.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  495.     INLINE $702B, $A09E, $1E80;
  496.     {$ENDC}
  497. PROCEDURE SetDimSuspendState(dimSuspendState: BOOLEAN);
  498.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  499.     INLINE $101F, $4840, $303C, $002C, $A09E;
  500.     {$ENDC}
  501.  
  502. CONST
  503.     uppSleepQProcInfo = $00131832;
  504.     uppHDSpindownProcInfo = $000000C0;
  505.     uppPMgrStateChangeProcInfo = $000003C0;
  506.  
  507. FUNCTION NewSleepQProc(userRoutine: SleepQProcPtr): SleepQUPP;
  508.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  509.     INLINE $2E9F;
  510.     {$ENDC}
  511.  
  512. FUNCTION NewHDSpindownProc(userRoutine: HDSpindownProcPtr): HDSpindownUPP;
  513.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  514.     INLINE $2E9F;
  515.     {$ENDC}
  516.  
  517. FUNCTION NewPMgrStateChangeProc(userRoutine: PMgrStateChangeProcPtr): PMgrStateChangeUPP;
  518.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  519.     INLINE $2E9F;
  520.     {$ENDC}
  521.  
  522. FUNCTION CallSleepQProc(message: LONGINT; qRecPtr: SleepQRecPtr; userRoutine: SleepQUPP): LONGINT;
  523.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  524.     {To be implemented:  Glue to move parameters into registers.}
  525.     {$ENDC}
  526.  
  527. PROCEDURE CallHDSpindownProc(VAR theElement: HDQueueElement; userRoutine: HDSpindownUPP);
  528.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  529.     INLINE $205F, $4E90;
  530.     {$ENDC}
  531.  
  532. PROCEDURE CallPMgrStateChangeProc(VAR theElement: PMgrQueueElement; stateBits: LONGINT; userRoutine: PMgrStateChangeUPP);
  533.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  534.     INLINE $205F, $4E90;
  535.     {$ENDC}
  536.  
  537. {$ALIGN RESET}
  538. {$POP}
  539.  
  540. {$SETC UsingIncludes := PowerIncludes}
  541.  
  542. {$ENDC} {__POWER__}
  543.  
  544. {$IFC NOT UsingIncludes}
  545.  END.
  546. {$ENDC}
  547.